#pragma once
#include "Map.h"
#include "WormAction.h"
#include "Team.h"

// Class for doing basic operation on game file.
class WriteGameData
{
public:

	// This method just write data to the file. Data wont be checked !
	// Starts new game.
	// Befor this you MUST call initMap.
	// After this you cant add teams.
	// return false if u dont initMap.
	virtual bool setNewGame(String fileName);

	// This method just write data to the file. Data wont be checked !
	// Sets map for the game.
	virtual void initMap(Map& initialMap);

	// This method just write data to the file. Data wont be checked !
	// This can be only called befor the setNewGame method was called.
	// newTeam Team to be added.
	virtual void addNewTeam(Team& newTeam);

	// This method just write data to the file. Data wont be checked !
	// After or befor this method you must call setMap or anther calls fail !
	// add action for next turn.
	// return false if you used this twice in a row.
	virtual bool setAction(WormAction newAction);

	// This method just write data to the file. Data wont be checked !
	// After or befor this method you must call setAction or anther calls fail !
	// sets map for next turn.
	// return false if you used this twice in a row.
	virtual bool setMap(Map& newMap);

	// Probably wont be used.
	virtual void setGameEnd();

	virtual ~WriteGameData(void);
};

